package edu.utn.tacs.grupouno.negocio;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;


public class Dia {
	
	public Dia() {
		
	}
	public Dia(Date date) {
		this();
		fecha = date;
	}
	
	public enum DiaDeLaSemana {
		Domingo(Calendar.SUNDAY),
		Lunes(Calendar.MONDAY),
		Martes(Calendar.TUESDAY),
		Miercoles(Calendar.WEDNESDAY),
		Jueves(Calendar.THURSDAY),
		Viernes(Calendar.FRIDAY),
		Sabado(Calendar.SATURDAY);
		private int value;
		private DiaDeLaSemana(int i) {
			value = i;
		}
		private int getValue() {
			return value;
		}
		public static DiaDeLaSemana get(Date date) {
			Calendar cal = Calendar.getInstance();
			cal.setTime(date);
			for(DiaDeLaSemana dia : DiaDeLaSemana.values()) {
				if(dia.getValue() == cal.get(Calendar.DAY_OF_WEEK))
					return dia;
			}
			return null;
		}
	}
	
	private List<Turno> turnos;
	private Date fecha;

	public void setTurnos(List<Turno> turnos) {
		this.turnos = turnos;
	}
	public List<Turno> getTurnos() {
		return turnos;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	public Date getFecha() {
		return fecha;
	}
	
	public Turno getTurno(String horario) {
		if(turnos != null) {
			for(Turno turno : turnos) {
				if(turno.getHorario().equals(horario))
					return turno;
			}
		}
		return null;
	}
	public List<Turno> getTurnosDisponibles() {
		List<Turno> lista = new ArrayList<Turno>();
		for(Turno turno : turnos) {
			if(turno.isDisponible())
				lista.add(turno);
		}
		return lista;
	}
	public List<Turno> getTurnosAsignados() {
		List<Turno> lista = new ArrayList<Turno>();
		for(Turno turno : turnos) {
			if(!turno.isDisponible())
				lista.add(turno);
		}
		return lista;
	}
	
}